package validator

import (
	"context"
	"regexp"

	"github.com/gogf/gf/v2/errors/gerror"
	"github.com/gogf/gf/v2/util/gvalid"
)

func ArrangeNameRule(ctx context.Context, in gvalid.RuleFuncInput) error {
	name := in.Value.String()

	// 定义正则表达式  检查字符串是否不包含 \/*?'"<>|[]
	pattern := `^[^\\/*?'"<>|\[\]]+$`
	reg := regexp.MustCompile(pattern)

	// 匹配字符串
	if reg.MatchString(name) {
		return nil
	} else {
		return gerror.New("名称不能含有以下特殊字符 \\/*?'\"<>|[]")
	}
}

func init() {
	gvalid.RegisterRule("arrange-name-rule", ArrangeNameRule)
}
